一、什么是HTTP协定

HyperText Transfer Protocol,超文本传输协定HTTP:用于规定浏览器客户端和服务器之间的通信形式(规定)HTTP协定次要规定了浏览器在发送申请给服务器时必须要遵循什么格局以及规定了服务器在做出回应(响应)给浏览器时必须要遵循什么格局HTTP工作时所遵循的准则:1)一次申请必须对应一次响应2)申请只能是浏览器发送给服务器,服务器只能被动的期待申请,依据申请做出回应

二、HTTP协定详解

HttpWatch浏览器插件: 用于监听浏览器和服务器通信的内容在一个较老版本的火狐浏览器上装置这个插件

1、Http申请信息

第一局部:申请行    GET /news/hello.html HTTP/1.1    1)GET: 提交形式,HTTP协定中一共规定了7种提交形式,其中5种都不罕用,只用GET和POST        GET提交和POST提交有什么区别? 前面讲    2)/news/hello.html: 申请资源门路,显示了拜访哪一个利用下的哪一个资源文件    3)HTTP/1.1: 申请所遵循的协定和版本    第二局部: 申请报头(若干申请头)        Host: localhost:8080 -- 指定拜访的主机名和端口    User-Agent: Mozilla/5.0..Firefox/25.0 -- 指定客户端的版本    Accept: ..text/html image/* -- 客户端可能承受的数据类型    ...    (空白行)第三局部: 申请实体    如果申请形式为GET,申请实体中不会有内容(申请实体是空的);    如果申请形式为POST,并且申请中携带了数据,此时申请实体中才会有内容;    

2、Http响应信息

第一局部:状态行    HTTP/1.1 200 OK    1)HTTP/1.1: 响应所遵循的协定和版本    2)200: 状态码,示意申请解决的后果        200: 示意申请解决是胜利的!        302: 示意浏览器须要进一步申请才能够拜访到对应的资源        304/307: 示意让浏览器应用以前缓存的资源文件        404: 示意浏览器所申请的资源找不到(可能是浏览器的拜访门路是谬误的!)        500: 示意服务器外部呈现谬误(可能是服务器在解决申请时抛出了异样)    3)OK: 和后面的状态码对应        200 OK        404 Not Found        500 Internal Server Error第二局部: 响应报头(若干响应头)    Content-Type: text/html -- 响应给浏览器的数据类型,text/html示意html格局的网页    Content-Length: 139 -- 响应给浏览器的数据长度,139字节    ...    (空白行)第三局部: 响应实体    响应实体:就是浏览器所申请的文件内容    比方:浏览器申请服务器外部的一个hello.html文件,服务器在响应时,        就会将hello.html文件的内容作为响应实体发送浏览器    

补充内容1:什么时候是GET提交?什么时候是POST提交?

HTTP协定中一共规定了7种提交形式,但5种都不罕用,只用GET和POST提交。只有当应用表单(form)并且在表单上通过method属性指定提交形式为POST时,才是POST提交,其它的都是GET提交(AJAX除外)。思考题:判断以下申请是什么提交形式?(1)<form action="#"></form>                                    --- GET提交                    (2)<form action="#" method="GET"></form>        --- GET提交    (3)<form action="#" method="POST"></form>        --- POST提交    (4)点击超链接拜访服务器,例如:    <a href="http://www.baidu.com">百度一下</a>    --- GET提交(5)间接在浏览器的地址栏中书写URL地址拜访服务器                --- GET提交

补充内容2:GET提交和POST提交的次要区别?

次要体现在申请参数传输过程的不雷同!GET提交: (次要用于向服务器申请数据)1) GET提交是在地址栏URL地址的前面通过问号拼接参数将数据提交给服务器    因为数据会显示在地址栏上,如果是隐衷数据,十分的不平安2) 通过地址栏提交数据,数据量不能超过1KB或者4KB    更不能提交文件POST提交: (次要用于向服务器提交数据)1) POST不是通过地址栏提交数据,而是通过申请实体将数据带给服务器    因为数据是通过申请实体发送数据,绝对更加平安!2) 通过申请实体提交数据,数据量实践上没有限度!    能够提交文件应用场景:1)如果只是单纯做一个跳转,或者只是拜访一个网页,申请中没有数据,都是应用GET提交。2)如果在申请中有数据,但数据量不大,并且数据没有隐衷性,也尽量应用GET提交。3)如果在申请中有数据,数据量比拟大或者数据较为隐衷,此时举荐应用POST提交,    如果是提交文件,只能用POST提交。    HTTP协定书籍:<<图解HTTP协定>>