前端学习(2)

一 HTTP

HTTP(hypertext transport protocol), 超文本传输协议。这个协议规定了浏览器(客户端)和万维网服务器之间的通信规则。

HTTP规定给了浏览器和万维网服务器互相传输内容的格式。即请求协议、响应协议。

特点:

  1.HTTP是基于请求/响应模式的;

  2.HTTP是无状态协议;

注意:

  1. HTTP是没有记忆能力的,如果需要记录信息需要适用Cookie或者Session;

  2. HTTP是应用层协议,是无状态面向连接的协议,但HTTP可以保持连接并且不是UDP协议;

  3. HTTP从1.1版本开启了Keep-Alive用来保持连接,但是有一定时间的;

二 请求协议

格式:

  请求首行;包括:方式、路径、协议和版本;

  请求头信息;包括:头名称、头内容;

  空行;就是用来将上面的信息与下面的请求体分隔开;

  请求体;GET方式没有请求体,POST有请求体;

  2.1 GET请求

  HTTP默认的请求方式就是GET方式

  特点:

    a. 没有请求体;

    b. 数据必须在1K之内;

    c.GET请求数据会暴露在浏览器的地址栏中,不安全;

  常用GET请求的操作:

    a. 在浏览器中的输入URL访问服务器,GET方式;

    b.点击页面上的超链接,GET方式;

    c.在适用form表单向服务器传输数据时,表单方法选用GET,则GET方式;

Request URL: https://www.baidu.com/
Request Method: GET
Status Code: 200 OK
Remote Address: 39.156.66.14:443
Referrer Policy: no-referrer-when-downgrade

  

GET / HTTP/1.1
Host: www.baidu.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: BAIDUID=C677D5BFFEE347092A84FB4B9E7BFFB0:FG=1; BIDUPSID=C677D5BFFEE347092A84FB4B9E7BFFB0; PSTM=1544768079; BDUSS=3M2R3VvWkRpY0RVbTVMWVFqNWZBT3RYMktDdGk3YUFCV1laYzYzOWNFfmlYalJkRVFBQUFBJCQAAAAAAAAAAAEAAAAvfAkq0MK1xMbwteNiYWJ5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOLRDF3i0Qxdb; BD_UPN=12314753; BD_HOME=1; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; delPer=0; BD_CK_SAM=1; PSINO=1; COOKIE_SESSION=475505_0_9_9_84_79_0_5_9_5_0_10_475521_0_14_0_1585355162_0_1585355148%7C9%23955168_11_1568635343%7C5; BDRCVFR[LqJxTNeWn7_]=mk3SLVN4HKm; H_PS_PSSID=; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; H_PS_645EC=bec2cY%2F%2BQ2LfQ0z4yrHe0ae37sRaat5g3h6T%2FNMIkkqobTzIWo5mG%2BwBv3509KR6J%2BjF47qU

  2.2 POST请求

  特点:

    a.数据不会出现在地址栏中;

    b.数据大小没有上限;

    c.有请求体;

    d.请求体重如果存在中文, 会使用URL编码;例如:username=%E5%BBC%A0%E4%88%89&password=456

  请求体:

    1. Referer:http://www.badiu.com; 意思就是你从百度的网址跳转过来的;可以用来防盗,统计等;

    2. Content-type:application/x-www-form-urlencoded:表单的数据类型,使用url格式编码数据,是让服务器依照这个编码格式进行变吗的,数据以“%”为前缀,后面跟着两个十六进制数;

    3. Content-Length:13, 请求体的长度13个字节;

    4.keyword=damon: 请求体的内容, damon是表单中输入的数据,keyword是表单字段的名字;

三 响应协议

  格式:

    1. 响应首行;

    2. 响应头信息;

    3. 空行; 

    4. 响应体;

  响应体内容是服务器发送给浏览器的内容,浏览器会根据内容进行渲染和显示。其中如果遇到<imp>标签,会再启动一个线程用来加载图片,所以经常会出现页面显示了但是图片还没有加载。

HTTP/1.1 200 OK  版本号:HTTP/1.1, 状态码:200 请求成功
Bdpagetype: 2  
Bdqid: 0x96246a0f000f4322
Cache-Control: private
Connection: keep-alive
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8 响应使用的编码UTF-8
Date: Sat, 28 Mar 2020 03:21:11 GMT 响应的时间
Expires: Sat, 28 Mar 2020 03:21:10 GMT
Server: BWS/1.1 服务器的版本信息
Set-Cookie: BDSVRTM=393; path=/ 响应客户端的Cookie
Set-Cookie: BD_HOME=1; path=/ 响应客户端的Cookie
Set-Cookie: H_PS_PSSID=1451_31120_21089_30825_30910_30824_31085; path=/; domain=.baidu.com 响应客户端的Cookie
Strict-Transport-Security: max-age=172800
Traceid: 1585365671275440513010818888817508827938
X-Ua-Compatible: IE=Edge,chrome=1
Transfer-Encoding: chunked

  以上内容通过网页,点击F12->Network->点击Name是百度网址->点击Headers,查看到的请求协议和响应协议内容。

  状态码:

    1. 200: 请求成功;

    2. 404: 请求的资源不存在;

    3. 500: 请求的资源存在,但服务器出现错误;

    4. 302: 服务器要求浏览器从新发个请求,服务器会发送一个location的响应头,用来指定新请求的URL地址;

    5. 304: 用来缓存的时候使用;

  HTML中指定响应头:

    <meta http:equiv="" content="">用来指定响应头。

愿有志之人,成就非凡之事。
原文地址:https://www.cnblogs.com/damon-song/p/12637106.html