How the Web Works

124 篇文章 0 订阅

Learn Python The Hard Way 书中的相关内容,抄了一遍。
又是一本不可多得的好书。

去年寒假,就是今年一月份,打印了这本书,学了一部分。
三月份在院楼机房花了三星期,大概看完了这本书。
半年后的现在,再看一遍,依然有好多收获。
真的,不用特意寻找特别多的学习资源,好好利用现有的资源。
真的能学好三、两本书。找份工作,没问题的。


I’m start with a simple diagram that shows you the different parts of a web request and how the information flows:

这里写图片描述

I’ve labeled the lines with letters so I can walk you through a regular request process:

  1. You type in the url http://learnpythonthehardway.org/ into your browser and it sends the request out on line (A) to your computer’s network interface.
  2. Your request goes out over the Internet on line (B) and then to the remote computer on line (C) where my server accepts the request.
  3. Once my computer accepts it, my web application get it, and my Python code runs the index.GET handler.
  4. The response comes out of my Python server when I return it, and get back to your browser over line (D) again.
  5. The server running this site takes the response off line (D) then send it back over the Internet on line (C).
  6. The response from the server then comes off the Internet on line (B) , and your computer’s network interface hands it to your browser on line (A).
  7. Finally, your browser then displays the response.

In this description there are a few tems you should know so that you have a common vocabulary to work with when talking about your web application:

Browser
The software that you’re probably using every day. Most people don’t know what it really does, they just call it “the internet”. It’s job is to take addresses (like http://learnpythonthehardway.org ) you type into the URL bar, then use that information to make requests to the server at that address.

Address
This is normally a URL (Uniform Resource Locator) like http://learnpythonthehardway.org/ and indicates where a browser should go. The first part http indicates the protocol you want to use, in this case “Hyper-Text Transport Protocol”. You can also try ftp://ibiblio.org/ to see how “File Transport Protocol” works. The learnpythonthehardway.org part is the “hostname”, ot a human readable address you can remember and which maps to a number called an IP address, similar to a telephone number for a computer on the Internet. Finally, URLs can have a trailing path like the /book/ part of http://learnpythonthehardway.org/book/ which indicates a file or some resource on the server to retrieve with a request. There are many other parts, but those are the main ones.

Connection
Once a browser knows that protocol you want to use (http), what server you want to talk to (learnpythonthehardway.org), and what resource on the server to get, it must take a conection. The browser simply asks your Operating System (OS) to open a “port” to the computer, ususlly port 80. When it works the OS hands back to your program something that works like a file, but is actually sending and receiving bytes over the network wires between your computer and the other computer at “learnpythonthehardway.org”. This is also the same thing that happens with http://localhost:8000/ but in this case you’re telling the browser to connect to your own computer (localhost) and use port 8080 rather than the default of 80. You could also do http://learnpythonthehardway.org:80/ and get the same result, except you’re explicitly saying to use port 80 instead of letting it be that by default.

Request
Your browser is connected using the address you gave. Now it needs to ask for the resource it wants (or you want) on the remote server. If you gave /book/ at the end of the URL, then youwant the file (resource) at /book/, and most servers will use the real file /book/index.html but pretend it doesn’t exist. What the browser does to get this resource is send a request to the server. I won’t get into exactly how it does this, but just understand that it has to send something to query the server for the request. The interesting thing is that these “resources” don’t have to be files. For instance, when the browser in your application asks for something, the server is returning something your Python code generated.

Server
The server is the computer at the end of a browser’s connection that knows how to answer your browser’s requests for files/resources. Most web servers just send files, and that’s actually the majority of traffic. But you’re actually building a server in Python that knows how to take requests for resource, and then return strings that you craft using Python. When you do this crafting, you can pretending to be a file to the browser, but really it’s just code. As you can see from Ex50, it also doesn’t take much code to create a response.

Response
This is the HTML (css, javascript, or images) your server wants to send back to the browser as the answer to the browser’s request. In the case of files, it just reads them off the disk and sends them to the browser, but it wraps the cintents of the disk in a special “header” so the browser knows what it’s getting. In the case of your application, you’re still sending then same thing, including the header, but you generate that data on the fly with your Python code.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值