美文网首页
20170204 解析http(4)

20170204 解析http(4)

作者: 田田kyle | 来源:发表于2017-02-27 10:05 被阅读19次

    http(维基百科)hypertext transfer protocol 超文本传输协议

    • 服务器:可以是电脑 也可以是程序(你访问IP,我给你提供页面。运行JS文件,就是个程序)

    • IP和网址的关系,中间会有DNS(ping 域名。显示该域名的IP,百度买了很多服务器,根据你的位置返回最近的IP)

    • DNS:网域名称系统,是一个分布式数据库(DNS 服务器IP是由运营商告诉你你的IP是多少,然后你的路由器会显示)

    • 结构:

    网址 IP
    baidu.com 111.11.11
    googe.com 222.22.22

    (一个域名可以对应多个IP。每个用户在访问的时候对应的IP都不一致,一般是地理位置最近的IP)
    总结两句话:
    1、一个域名对应的IP由所有者指定的
    2、由所有者决定域名对应的IP,不在本机(也就是你迁的电信网,就由电信运营商决定)

    PS:
    强制改IP
    1、Linux: sudo vi /etc/hosts/ 127.0.0.1 baidu.com
    2、Windows - 用管理员账号打开citbash

    -notepad 或者记事本打开 hosts文件(c/windows/system32/dvivers/etc/hosts)改IP
    -在gitbash试或者打开网页试

    • 端口(TCP/UDP协议) 一个端口对应一个服务

    1、FTP(传文件。默认端口21)监听21

    2、http 80端口

    3、DNS 53端口

    4、HTTPS 443端口

    5、1080 socks代理端口

    PS:
    *0-1023 都是保留端口,只能管理员身份运行
    端口范围 0--65535 2的16次方
    sudo以管理员身份运行 *

    请求&&响应

    • 浏览器(发出请求)--------------服务器(响应请求,返回页面给浏览器)
      client sever
      浏览器也叫客户端、用户代理(user agent,因为是浏览器代替我上网)
    一个请求包含哪些内容

    curl -L https://baidu.com

    curl -l http://101.200.33.143:8888/index.html

    1、请求行:动词 get 路径 协议/版本号
    get/ index.html http1.1.1
    get head post put(给什么替换掉要改的) pacth(保留旧的) delete connect option trace
    2、请求头:域名(host)
    host:1.2.3.4
    accept:HTML、XHTML、XML
    user-agent:chrome、Mac、
    第四部分内容格式:json/HTML/urlencoded(第二部分指定第四部分格式)content-type:application x/www-form-urlencoded(x表示这个东西还没进入标准,但试行了很多年了)
    3、回车
    4、消息体(内容随意,可省略)
    难点:cookie

    一个请求的例子:

    get/index.html http/1.1(我要index.html,遵循的版本是http1.1)
    host:101.200.33.143:9999(我需要百度的这个IP访问9999端口号)
    connection:keep-alive
    pragma:no-cache(不要缓存我)
    upgrade-insecure-requests:1
    user-agent:mogilla/5.0(macintosh;intel mac os x 10_12_3) applewebkit/537.36(khtml,like gecko)
    chrome/56.0.2924.87 safari/537.36(用户用什么工具访问)
    accept:text/html,application/xhtml+xml;application/xml0.9,image/webp,
    /*;q=0.8(返回HTML,如果没有就XHTML)
    accept-encoding;gzip,defiate,sdch *

    响应
    一个响应的例子:

    HTTP/1.1 200 OK(版本号、状态码)
    Server: bfe/1.0.8.18
    Date: Tue, 28 Feb 2017 06:28:27 GMT
    Content-Type: text/html; charset=utf-8(定义第四部分类型)
    Transfer-Encoding: chunked
    Connection: keep-alive
    Vary: Accept-Encoding
    Set-Cookie: BDRCVFR[yRSRXBz7w1T]=-tUPB7bzJE6uZNBmi4WUvY; path=/; domain=.baidu.com
    Set-Cookie: BDSVRTM=0; path=/
    Set-Cookie: BD_HOME=0; path=/
    Set-Cookie: H_PS_PSSID=1464_21081_22036; path=/; domain=.baidu.com
    P3P: CP=" OTI DSP COR IVA OUR IND COM "
    Cache-Control: private
    Cxy_all: 56060048_4_pg+64bff61a52fe2c37f37a88f72cfc6228
    Expires: Tue, 28 Feb 2017 06:28:02 GMT
    X-Powered-By: HPHP
    X-UA-Compatible: IE=Edge,chrome=1
    Strict-Transport-Security: max-age=172800
    BDPAGETYPE: 1
    BDQID: 0xf209092c000026f8
    BDUSERID: 0
    Content-Encoding: gzip
    Set-Cookie: __bsi=2050419762638780962_00_21_R_N_3_0303_C02F_N_I_I_0; expires=Tue, 28-Feb-17 06:28:32 GMT; domain=www.baidu.com; path=/

    • 状态码:
      200:成功 301:重新定向;永久搬家 302:临时搬家
      304:指缓冲的版本已经被更新并且客户端应刷新文档
      404:请求网址不存在 403:不允许你访问
      405:只能用特定方式请求,如只能用get
      414:请求的网址太长
      505:内部服务器错误 502:网关问题

    相关文章

      网友评论

          本文标题:20170204 解析http(4)

          本文链接:https://www.haomeiwen.com/subject/dqxzwttx.html